var app=getApp()
// pages/quote/quote.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    head:false,
    cardsList:[],//卡片原始数据
    // 随机数种子
    seek:0,
    offset:0,//分页
    cards: [], // 卡片数据，一个包含所有卡片对象的数组
    removed_cards: [],// 存放已经移除的卡片的索引数据，如果索引填充了其他卡片，需要将该索引移出
    count:1//计算当前总共翻了几组数据
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    this.generateCards(5)
  },
  // 初始化数据
  async generateCards(num) {
    const cards = []
    const seek = Math.floor(Math.random()*33);
    const res = await wx.$http.get('/',{
      offset:this.data.offset,
      seek:seek
    })
    if(res.statusCode!==200)return wx.$showMsg()
    const data = res.data
    for (let i = 0; i < num; i++) {
      cards.push({
        title: data[i].poetry_name,
        desc: data[i].quote_content,
        poetry_id:data[i].poetry_id
      })
    }
    let offset = this.data.offset
    offset++
    this.setData({
      cards: cards,
      current_cursor: cards.findIndex(item => item),
      removed_cards: [],
      cardsList:data,
      offset,
      seek,
    })
  },
  // 处理卡片滑动事件
  async cardSwipe(e) {
    const { direction, swiped_card_index, current_cursor } = e.detail
    // 先判断是否登录
    if(app.globalData.is_login){
      // 左滑收藏
      if(direction==='left'){
        const user_openid = app.globalData.userInfo.openid
        const poetry_id = this.data.cards[swiped_card_index].poetry_id
        // 发送收藏请求
        const res = wx.$http.get('/library/poetry/favorite/insert',{
          user_openid:user_openid,
          poetry_id:poetry_id
        })
        if(res.statusCode!==200)wx.$showMsg()
        wx.showToast({
          title: '收藏成功！',
          icon:'none',
          duration:1000
        })
      }
    }else{
      wx.showToast({
        title: '用户未登录',
        icon:'none',
        duration:1000
      })
    }
    // wx.showToast({
    //   title: `卡片${swiped_card_index + 1}向${direction === 'left' ? '左' : '右'}滑`,
    //   icon: 'none',
    //   duration: 1000
    // })
    var cards = []
    const {cardsList,count,head} = this.data
    // 渲染新的数据
    let {seek,offset} =this.data
    if(current_cursor ==0&&head==true){
      // 请求新的数据
      const res = await wx.$http.get('/',{
        offset:offset,
        seek:seek
      })
      if(res.statusCode!==200)return wx.$showMsg()
      const data = res.data
      for (let i = 0; i < 5; i++) {
        cards.push({
          title: data[i].poetry_name,
          desc: data[i].quote_content,
          poetry_id:data[i].poetry_id
        })
      }
      offset++
      const newcardsList=cardsList.concat(data)
      this.setData({
        cards,
        cardsList:newcardsList,
        count:count+1,
        offset,
      })
    }
    
    this.setData({
      current_cursor,
      head:true
    })
  },
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {
  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})